#include "bsp_key.h"

struct Key key[4];

void BSP_Key_Handle(void)
{
    key[0].key_level = KEY0_LEVEL;
    key[1].key_level = KEY1_LEVEL;
    key[2].key_level = KEY2_LEVEL;
    key[3].key_level = KEY3_LEVEL;

    for (int i = 0; i < 4; i++)
    {
        switch (key[i].key_index)
        {
        case 0:
        {
            if (key[i].key_level == 0)
            {
                key[i].key_index = 1;
                key[i].key_time = 0;
            }
            break;
        }
        case 1:
        {
            if (key[i].key_level == 0)
            {
                key[i].key_time++;
            }
            else if (key[i].key_level == 1)
            {
                key[i].key_index = 2;
            }
            break;
        }
        case 2:
        {
            if (key[i].key_level == 1)
            {
                if (key[i].key_time < 30)
                    key[i].key_short = 1;
                if (key[i].key_time > 70)
                    key[i].key_long = 1;
            }
            key[i].key_index = 0;
            break;
        }
        }
    }
}
